home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PCMania 30
/
PCMania CD30.iso
/
postumum
/
pcapsys
/
cargacut.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1994-11-16
|
2KB
|
78 lines
(* Ejemplo codificado por : *)
(* Francesc Casanovas *)
(* Ripness / Postumum (c) - 1.994 *)
(* en Turbo Pascal v6.0 *)
Program CargaCut;
Uses Crt,Dos,CapSys;
Type
Paleta = Array [0..255,0..2] Of Byte;
Var
Regs : Registers;
cont : Word;
c : Char;
Pantalla : Pointer;
Paleta1 : Paleta;
Imagen : String;
Panta : File;
long : LongInt;
Procedure Carga_Pantalla (fichero : String );
Var A : Byte;
Begin
Assign (Panta,Fichero); { Abrimos el fichero para leer }
Reset (Panta,1);
Regs.ax := $13; { Activamos el modo 320x200x256 }
Intr ($10,Regs);
BlockRead(Panta,Paleta1,768); { Leemos los primeros 768 bytes del fichero}
Regs.Ax := $1012; { que corresponden a la paleta }
Regs.Bx := 0;
Regs.Cx := 256;
Regs.Es := Seg (Paleta1);
Regs.Dx := Ofs (Paleta1);
Intr ($10,Regs); { Activamos la paleta }
long := (FileSize (Panta)-768);
Fillchar (Pantalla^,64000,0);
BlockRead (Panta,Pantalla^,Long); { Leemos lo que queda de imagen despues }
{ de la paleta y lo volcamos al puntero }
Close (Panta); { Cerramos el fichero }
Move (Pantalla,Mem[$A000:0],long); { Volcamos el puntero a memoria de video }
C := ReadKey;
End;
{ ********************* MAIN ******************************* }
Begin
Cursoroff; { Desconectamos el cursor }
If ParamCount < 1 Then
Begin
WriteLn;
WriteLN ('Error, faltan parametros.... Uso VerPan < nombre de fichero > ');
CursorOn;
Halt;
End;
Imagen := ParamStr(1);
if (Pos ('.', imagen) = 0) then
Imagen := Concat (imagen, '.cut');
If Not Exist (Imagen) Then
Begin
WriteLn;
WriteLn (' Fichero no existente ');
CursorOn;
Halt;
End;
GetMem (Pantalla,64000);
Carga_pantalla (Imagen);
TextMode (CO80);
CursorOn;
FreeMem (pantalla,64000);
End.